<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
            //  var a =  {a: 1, b: 2,d:5};
			//   var b = {a: 2, b: 3,c: 4};
            //   for (var key in b) {
			//   	 a[key]=b[key]
			//   }
			//   console.log(a){a: 2, b: 3, d: 5, c: 4} 
            
            //   function extend(obj1,obj2){
			// 	  for (var key in obj2) {
			// 	  	 obj1[key]=obj2[key]
			// 	  }
			// 	  return obj1
			//   }
			  
			//   console.log(extend(a,b)) //a2 b3 c4 d5

            // var o1 = { a: 1 };
			// 	var o2 = { b: 2 };
			// 	var o3 = { c: 3 };

            //     var obj0 = Object.assign({},o1, o2, o3);//a: 1b: 2c: 3
            //     console.log(obj0,o1)  //a1


            let obj1={
				a:1,
				b:{
					// b1:[1],
					b2:{
						c1:33
					}
				}
			}
			
			let obj2={
				a:2,
				b:{
					// b1:[2],
					b2:{
						c2:44
					}
				}
			}
            function deepClone(obj1,obj2){
			//判断是不是json对象{}
			if(Object.prototype.toString.call(obj1) === '[object Object]' && Object.prototype.toString.call(obj2) === '[object Object]'){
				for(let key in obj2){
					//递归赋值，合并对象
					obj1[key]=deepClone(obj1[key],obj2[key]);
				}
			}
			//判断是不是数组[]，合并数组
			else if(Object.prototype.toString.call(obj1) === '[object Array]' && Object.prototype.toString. call(obj2) === '[object Array]'){
				// 两个都是数组，进行合并
				obj1=obj1.concat(obj2);
			}
			//其他情况，直接赋值
			else{
				obj1 = obj2;
			}
			return obj1;
			
		}
	    console.log(190,deepClone(obj1,obj2))
    </script>
</body>
</html>